Sonic Partial Deduction
نویسندگان
چکیده
The current state of the art for ensuring finite unfolding of logic programs consists of a number of online techniques where unfolding decisions are made at specialisation time. Introduction of a static termination analysis phase into a partial deduction algorithm permits unfolding decisions to be made offline, before the actual specialisation phase itself. This separation improves specialisation time and facilitates the automatic construction of compilers and compiler generators. The main contribution of this paper is how this separation may be achieved in the context of logic programming, while providing non-trivial support for partially static datastructures. The paper establishes a solid link between the fields of static termination analysis and partial deduction enabling existing termination analyses to be used to ensure finiteness of the unfolding process. This is the first offline technique which allows arbitrarily partially instantiated goals to be sufficiently unfolded to achieve good specialisation results. Furthermore, it is demonstrated that an offline technique such as this one can be implemented very efficiently and, surprisingly, yield even better specialisation than a (pure) online technique. It is also, to our knowledge, the first offline approach which passes the KMP test (i.e., obtaining an efficient Knuth-Morris-Pratt pattern matcher by specialising a naive one).
منابع مشابه
A Conceptual Embedding of Folding into Partial Deduction: Towards a Maximal Integration
The relation between partial deduction and the unfold/fold approach has been a matter of intense discussion. In this paper we consolidate the advantages of the two approaches and provide an extended partial deduction framework in which most of the tupling and deforestation transformations of the fold/unfold approach, as well the current partial deduction transformations, can be achieved. Moreov...
متن کاملThe Effect of Partial Deduction in Abductive Reasoning
Partial deduction is known as an optimization technique in logic programming. In the context of abductive logic programming, however, we present in this paper that normal partial deduction does not preserve explanations for abductive reasoning. Then we provide an alternative method of partial deduction, called abductive partial deduction, which is shown to preserve the meanings of abductive log...
متن کاملPartial Deduction for Structural Synthesis of Programs
The notion of partial deduction known from logic programming is deened in the framework of Structural Synthesis of Programs (SSP). Partial deduction for unconditional computability statements in SSP is deened. Completeness and correctness of partial deduction in the framework of SSP are proven. Several tactics and stopping criteria are suggested.
متن کاملAdvanced Logic Program Specialisation
In first part of this course [28] we have laid the theoretical foundations for logic program specialisation, notably introducing the technique of partial deduction along with some basic techniques to automatically control it. In this part of the course we first present in Section 2 an advanced way of controlling polyvariance based upon characteristic trees. We then show in Section 3 how partial...
متن کاملPartial Deduction in Disjunctive Logic Programming
CHIAKI SAKAMA AND HIROHISA SEKI y. This paper presents a partial deduction method in disjunctive logic programming. Partial deduction in normal logic programs is based on unfolding between normal clauses, hence it is not applicable to disjunctive logic programs in general. Then we introduce a new partial deduction technique, called disjunctive partial deduction, which preserves the minimal mode...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 1999